import router from './index'
import store from '../store/index'
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
NProgress.configure({showSpinner: false}) // NProgress Configuration


//路由白名单列表，把路由添加到这个数组，不用登陆也可以访问
const whiteList = ['/login', "/"]

//代码位置：src/permission.js

router.beforeEach(async (to, from, next) => {
    NProgress.start() // start progress bar
    // 如果新进的页面路由在放行白名单内 直接放行
    if (whiteList.indexOf(to.path) !== -1) {
        next();

    } else {
        //登录状态
        let hasLogin = store.getters.hasLogin;
        //菜单初始化状态
        let hasRouterInit = store.getters.hasRouterInit;
        //不在放行页面 并且没有登录的话 那么跳转到登录页
        if (!hasLogin) {
            next(`/login?redirect=${to.path}`);

        } else {
            //如果已经登录了 但是系统没有初始化路由信息的话 需要进行路由初始化
            if (!hasRouterInit) {

                //等待路由初始化完成后执行跳转
                await store.dispatch("getMenuTree");

            }
            next();


        }


    }


    NProgress.done()
})


router.afterEach(() => {
    NProgress.done() // finish progress bar
})